package com.ruoyi.hr.mapper;

import com.ruoyi.hr.domain.Authority;
import com.ruoyi.hr.domain.Empchange;
import com.ruoyi.hr.domain.JUser;
import org.apache.ibatis.annotations.Param;


import java.util.List;
import java.util.Map;


public interface JinpengMapper {
    /**
     * 获取员工列表
     *
     * @return
     */
    public List<JUser> findAll(@Param("juser") JUser juser, @Param("authorities") List<Authority> authorities, @Param("isAdmin") int isAdmin);

    /**
     * 获取数据数量
     *
     * @return
     */
    public int findCount(@Param("juser") JUser juser, @Param("authorities") List<Authority> authorities);


    /**
     * 获取所有公司和部门
     *
     * @return
     */
    public List<Map<String, Object>> findAllTree(@Param("authorityList") List<Authority> authorityList, @Param("isAdmin") int isAdmin);


    /**
     * 获取单个员工信息
     *
     * @return
     */
    public JUser findJuserOne(Long eid);

    /**
     * 校验员工编号是否唯一
     *
     * @param badge 员工编号
     * @return 结果
     */
    public int checkBadgeUnique(String badge);

    /**
     * 根据EID集合获取员工信息集合
     *
     * @param allEid 员工编号
     * @return 结果
     */
    public List<JUser> findJuser(@Param("allEid") List<String> allEid);

    /**
     * 修改岗位
     *
     * @param jUser 修改的员工信息
     * @return 修改成功数
     */
    public int updateExchange(JUser jUser);


    /**
     * 新增记录修改信息
     *
     * @param jUser 修改的员工信息
     * @return 新增成功数
     */
    public int insertChangeOrg(JUser jUser);


    /**
     * 新增记录修改信息
     *
     * @param jUser 修改的员工信息
     * @return 新增成功数
     */
    public int inserteEvent(JUser jUser);

    /**
     * 新增记录修改信息
     *
     * @param eid 员工ID
     * @return 改动前岗位信息
     */
    public Empchange findEmpchange(Long eid);

    /**
     * 恢复岗位
     *
     * @param empchange 员工修改之前的信息
     * @return 修改成功数
     */
    public int updaterecoveryEx(Empchange empchange);

    /**
     * 获取在职员工数量
     *
     * @return 在职员工数
     */
    public int findEmpCount();

    /**
     * 获取某年某月的员工数量
     *
     * @param time 需获取的年月
     * @return 在职员工数
     */
    public int findYearMonthMCount(String time);

    /**
     * 新增员工离职信息
     *
     * @param jUsers     离职的员工信息
     * @param effectdate 生效日期
     * @return 新增成功数
     */
    public int insertexQuit(@Param("jUsers") List<JUser> jUsers, @Param("effectdate") String effectdate);

    /**
     * @param allEid 员工id集合
     * @return
     */
    public int updateQuit(@Param("allEid") List<String> allEid);

    /**
     * 获取当日调岗员工
     */
    public List<JUser> findEvEmp(String effectdate);


    public List<String> getEmpRow();

    public JUser findEmpByBadge(String badge);

}
